10分でできる最低限のIAM設定見直し
30分から1時間のような短時間でAWS環境をレビューさせていただくことがあります。IAMユーザーのレビューについて、私がまず確認する内容をシェアします。
最後のアクティビティから、使われていないIAMユーザーを洗い出す
IAMコンソールからユーザーを開くと、IAMユーザーの一覧が表示されます。最後のアクティビティに注目し、使われていない可能性のあるIAMユーザーの候補を洗い出しします。
IAMユーザーを選択し、認証情報タブを開きます。サインイン認証情報、アクセスキー、AWS CodeCommitの認証情報、Amazon Keyspacesの認証情報があります。サインイン認証情報とは、AWSコンソールへのログイン情報です。アクセスキーはAWS CLIやSDKのようなプログラムでAWSを操作する際に利用します。
コンソールに最後にログインした日付を確認する
ユーザーの一覧画面に戻り、「コンソールへのアクセス」にチェックが入っているユーザーは、サインイン認証情報が発行されています。画像の2行目に注目するとこのユーザーはサインイン認証情報があるものの、実際にコンソールにログインしたことはないようです。
IAMユーザーの認証情報タブを開き、コンソールのパスワードの管理からパスワードを無効化します。
AWSコンソールにログインする必要があるユーザーでMFAが有効でない場合は、MFAを設定します。Windowsの場合はWinAuth、スマートフォンの場合はGoogle AuthenticatorやAuthyがよく使われているかと思います。1Passwordのようなパスワード管理ツールで設定する方法もあります。
アクセスキーの使用状況を確認する
ユーザーの一覧画面に戻り、「最後に使用されたアクセスキー」に注目します。項目が表示されない場合は、歯車マークを選びます。
IAMユーザーの認証情報タブを開き、アクセスキーの発行状況を確認します。以下のユーザーは2つのキーをもっており、1つのキーは使われたことがありません。キーはバツボタンから削除できます。無効化しキーは残しておくこともできます。無効化されたキーはまた有効化できます。
IAMの認証情報レポートを活用する
ユーザー数が多いと、AWSコンソールからの確認が大変かと思います。IAMの認証情報レポートをダウンロードし、IAMを棚卸しします。詳しくはユーザーガイドをご覧ください。
さいごに
IAMユーザーのレビューについて、ご紹介しました。”最後のアクティビティ”に注目しIAMユーザーが使われているのか確認します。使われてい場合は削除を検討します。また、コンソールへの認証情報とアクセスキーに分けて棚卸しします。キーを発行しているが、コンソールログインしかしないといったケースがよくあります。
IAMユーザーを発行するとこのような認証情報の棚卸しが必要になるので、複数のAWSアカウントを使う場合はスイッチロールやSSOを活用すると良いと思います。
チェックを自動化するには、AWS Security HubやAWS Configルールを利用します。